# 接口
# api 是接口的一种
# 能被外界访问的 函数 也是接口

"""
# HTTP请求
1.1.请求行
请求的URL、请求方法、htt版本

1.请求头
    1.UA
    2.content-type
    3.cookie  存在于浏览器内

1.2.请求主题


2.状态行
    1. 201 ： post、put创建资源成功
    2. 204 : 常用语delete ，资源修改成功，但没有返回内容
    3. 3xx  重定向：
                301 永久重定向、302临时重定向、304
    4. 4xx   401：没有权限访问资源，如（没有登录
            403： 禁止访问，如（已登录，操作的资源 需要更改的权限
            404： 不存在这个资源
            405： 方法不允许，如（不允许用POST请求，但你发起了post请求
2. 响应头
    content-type
    set-cookie

2.3 响应主题
    返回的数据



get、post区别 面试再看
cookie、session、token(跨平台)
"""

# 2.request
import requests
'''

'''
# get

# url='http://api.github.com'
# res = requests.get(url)
# # 请求头
# # headers={"token":"123"}
# # data={"username":"yuz","mobile":"13457"}
# # res = requests.get(url,params=data(可以直接data，不需要param),headers=headers)
#
# print(res.txt)

# post  post也可以 和get一样在url拼接数据，
# 1. params  2.表单形式  3. JSON形式
# res = requests.post(url,data = data,json = json ,headers=headers)


# 一、
url = 'http://test.lemonban.com/futureloan/mvc/api/member/register'
data = {"mobilephone":"13413766440","pwd":"123456"}
headers  ={"X-lemonban-Media-Type":"lemonban.v1"}

# 注册
# JSON关键字就是 content-type设置为 json
# data 关键字就是  CONtent-type 设置为表单形式
# params 就是querystring，？key=value& 形式
res = requests.post(url,data=data,headers=headers)
# print(res.text)

# 登录  会返回token，是一串字符串    python sheet3
# 1. token 放在什么地方？ token可以放在请求体中？    token根据接口文档来
# 2. cookie只能放在请求头
url = 'http://test.lemonban.com/futureloan/mvc/api/member/login'
data = {"mobilephone":"13413766440","pwd":"123456"}
headers  ={"X-lemonban-Media-Type":"lemonban.v2"}
login = requests.post(url,data=data,headers=headers)
print(login.json())

# 充值 充值需要用到 登录的token、id
# id = login.json()['data']['id']
# token = login.json()['data']['token_info']['token']
# headers={"X-lemonban-Media-Type":"lemonban.v2","Authorization":"Bear{}".format(token)}
# requests.post(url,json=data,headers=headers)

# 二  cookie+ sessionid
# session  一次会话对象，存在于cookie
# 携带cookie
# cookies = res.cookies
# requests.post(url,data,headers, cookies = cookies)

# 2.1 session  相当于一个浏览器，自己带上
session = requests.Session()
# session.post(登录)
# session.post（充值）
# session.close()   关闭会话

anntoher_session = requests.Session()
# anntoher_session.post（充值）   会失败，提示登录，，因为是新建的一个requests.Session()，相当于另一个浏览器